package br.com.bankai.koby.repository.entity.simple;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.Table;

/**
 * 
 * @author Leonardo
 *
 */
@Entity
@Table(name = "tb_pessoa")
@Inheritance(strategy = InheritanceType.JOINED)
public class PessoaSimple implements Serializable {

	private static final long serialVersionUID = -6245309387365242944L;

	public PessoaSimple() {

	}

	public PessoaSimple(Long id, String tipo) {
		setId(id);
		setTipo(tipo);
	}

	@Id
	@Column(name = "id_pessoa", insertable = false, updatable = false)
	private Long id;

	@Column(name = "nm_pessoa", nullable = false)
	private String nome;

	@Column(name = "cd_status", nullable = false)
	private char status;

	@Column(name = "tp_pessoa", nullable = false)
	private String tipo;

	@Column(name = "dt_cadastro", nullable = false)
	private Date dataCadastro;

	@Column(name = "id_usuario_cadastro")
	private Long idUsuarioCadastro;

	@Column(name = "dt_alteracao")
	private Date dataAlteracao;

	@Column(name = "id_usuario_alteracao")
	private Long idUsuarioAlteracao;

	//Getters and Setters

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public char getStatus() {
		return status;
	}

	public void setStatus(char status) {
		this.status = status;
	}

	public String getTipo() {
		return tipo;
	}

	public void setTipo(String tipo) {
		this.tipo = tipo;
	}

	public Date getDataCadastro() {
		return dataCadastro;
	}

	public void setDataCadastro(Date dataCadastro) {
		this.dataCadastro = dataCadastro;
	}

	public Long getIdUsuarioCadastro() {
		return idUsuarioCadastro;
	}

	public void setIdUsuarioCadastro(Long idUsuarioCadastro) {
		this.idUsuarioCadastro = idUsuarioCadastro;
	}

	public Date getDataAlteracao() {
		return dataAlteracao;
	}

	public void setDataAlteracao(Date dataAlteracao) {
		this.dataAlteracao = dataAlteracao;
	}

	public Long getIdUsuarioAlteracao() {
		return idUsuarioAlteracao;
	}

	public void setIdUsuarioAlteracao(Long idUsuarioAlteracao) {
		this.idUsuarioAlteracao = idUsuarioAlteracao;
	}
}